package java44th.group.mapper;

import java.util.List;

import java44th.group.bean.admin.bo.goods.creategoods.AdminGoodsPO;
import java44th.group.bean.po.MarketGoods;
import java44th.group.bean.po.MarketGoodsExample;
import java44th.group.bean.wx.vo.goods.GoodsPartListVO;
import java44th.group.bean.wx.vo.goods.list.ListVO;
import java44th.group.bean.wx.vo.home.FloorGoodsListVO;
import java44th.group.bean.wx.vo.home.HotGoodsListVO;
import java44th.group.bean.wx.vo.home.NewGoodsListVO;
import org.apache.ibatis.annotations.Param;

public interface MarketGoodsMapper {
    long countByExample(MarketGoodsExample example);

    int deleteByExample(MarketGoodsExample example);

    int deleteByPrimaryKey(Integer id);

    int insert(MarketGoods row);

    int insertSelective(MarketGoods row);

    List<MarketGoods> selectByExampleWithBLOBs(MarketGoodsExample example);

    List<MarketGoods> selectByExample(MarketGoodsExample example);

    MarketGoods selectByPrimaryKey(Integer id);

    int updateByExampleSelective(@Param("row") MarketGoods row, @Param("example") MarketGoodsExample example);

    int updateByExampleWithBLOBs(@Param("row") MarketGoods row, @Param("example") MarketGoodsExample example);

    int updateByExample(@Param("row") MarketGoods row, @Param("example") MarketGoodsExample example);

    int updateByPrimaryKeySelective(MarketGoods row);

    int updateByPrimaryKeyWithBLOBs(MarketGoods row);

    int updateByPrimaryKey(MarketGoods row);


    int insertByAdminGoodsPO(AdminGoodsPO goods);

    AdminGoodsPO selectByPrimaryKeyToAdminGoodsPO(Integer id);

    int updateByAdminGoodsPOSelective(AdminGoodsPO goods);

    Integer selectCountId();

    List<FloorGoodsListVO> selectFloorGoods();

    List<HotGoodsListVO> selectHotGoods();

    List<NewGoodsListVO> selectNewGoodsList();

    List<ListVO> selectListVOByCategoryId(@Param("categoryId") Integer categoryId);

    List<GoodsPartListVO> selectGoodsPartListByCategoryId(@Param("categoryId") Integer categoryId);

    List<ListVO> selectListVOByKeyword(@Param("keyword") String keyword, @Param("order") String order);

    List<ListVO> selectListVOByKeywordAndCategoryId(@Param("keyword") String keyword, @Param("categoryId") Integer categoryId,@Param("order") String order);

}